Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build armhf libs #241

Open
wants to merge 7 commits into
base: knulli-main
Choose a base branch
from

Conversation

ben-willmore
Copy link

Here is a WIP approach to building 32-bit armhf h700 libraries:

git checkout build-armhf-libs
./create-armhf-config.sh
make -j8 h700_armhf_libs-build

The script will run make h700-config to generate a 64-bit configuration, then selects packages from output/h700/.config by excluding a long list of packages that do not install libraries. These packages are added to configs/batocera-h700_armhf_libs.packages.

make -j8 h700_armhf_libs-build uses a minimal configuration, which includes the above file, adds a few packages for missing libraries, and creates a tar file.

The resulting set of libraries can be compared against the 64-bit build using ./check-armhf-libs.sh. By default, this will ignore a list of libraries that I did not think were needed for a 32-bit build. For me, the output is:

Missing libs:
< libOpenCL

This is the only missing library that I think is any cause for concern. I am using my own fork of the https://github.com/knulli-cfw/t507_gpu_drivers repo, which includes the 32 bit libmali from knulli firefly, which does not seem to support OpenCL (I could be wrong.)

To get a complete list of missing libraries, use ./check-armhf-libs.sh -a instead. This could be used to refine the choice of packages.

output/h700_armhf_libs/images/rootfs.tar contains /lib, /usr/lib and /lib/ld-linux-armhf.so.3 which can be copied/linked into /lib32, /usr/lib32 and /lib/ld-linux-armhf.so.3 in a 64-bit build. I've tested the resulting libs with a range of 32 bit portmaster games, and they seem to work OK.

@ben-willmore
Copy link
Author

@ben-willmore
Copy link
Author

I have quickly tested the following ports using the above libraries.

Super Meat Boy
-- works with new libraries if libGL/libEGL below are included in the port
-- doesn't work at all with firefly libraries

Iconoclasts
-- works with new libraries if libGL/libEGL below are included in the port
-- also works ok with firefly libraries

69dd787cc121d42ca21d131be1bc1c20 supermeatboy/gl4es/libEGL.so.1
8b24657efef78ebcb3be20d4854765bc supermeatboy/gl4es/libGL.so.1

== The following work the same as now (sound seems to be missing in some cases, but this is not affected by which libraries are used):

BIOMASS Growth.sh
Bootleg Box.sh
Brave Dogs Road.sh
Breaker.sh
Cognizance.sh
Curseball.sh
Cybarian.sh
Derelict.sh
Everpatch.sh
Forgodden.sh
F-Zero Pocket.sh
GUM GIRL Gameboy Edition.sh
Guns and Guns.sh
iii.sh
Livid Meadow.sh
Lode.sh
LOVE 3.sh
Maldita Castilla.sh
MiniDoom.sh
Minit.sh
Mire.sh
Need For Speed II SE.sh
OH MY GOD, look at this knight.sh
OverGun.sh
Relic Hunters.sh
Reverse Bros.sh
Risk of Rain (2013).sh
Roguelight.sh
Shovel Knight.sh
Sonic 1 SMS Remake.sh
Sonic 2 SMS Remake.sh
Sonic 3 SMS Remake.sh
SneakR.sh
SorR.sh
Spearmint Mountain.sh
Stargrove Scramble.sh
Sulka.sh
Super Crate Box.sh
Tempus Locus.sh
The Night Shift.sh
Undertale.sh
Zelda II Enhanced.sh

@acmeplus
Copy link

This is the only missing library that I think is any cause for concern. I am using my own fork of the https://github.com/knulli-cfw/t507_gpu_drivers repo, which includes the 32 bit libmali from knulli firefly, which does not seem to support OpenCL (I could be wrong.)

I believe it's ok, we shouldn't need the OpenCL for the 32bit unless there's a need for some portmaster games.

The changes look good, but I want to review the -board* changes before I merge the PR. I'll try to that later today.

Thanks for the PR, it will save a lot of headaches :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants